//
//  ZXAvoidCrashRuntime.h
//  ZXAvoidCrash
//
//  Created by 朱新明 on 2022/11/24.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface ZXAvoidCrashRuntime : NSObject

/// 交换二个实例方法的IMP（方法实现），这2个SEL必须要有方法实现；
/// @param anClass anClass description
/// @param originalSel 原方法SEL，有可能是本类或者父类的；
/// @param swizzledSel 目标新方法SEL，本类；
+ (void)exchangeInstanceMethodWithClass:(Class)anClass
                       originalSelector:(SEL)originalSel
                       swizzledSelector:(SEL)swizzledSel;



/// 交换二个类方法的IMP（方法实现）
/// @param anClass anClass description
/// @param originalSel 原方法SEL，有可能本类或者父类的；
/// @param swizzledSel 目标新方法SEL，本类的；
+ (void)exchangeClassMethodWithClass:(Class)anClass
                    originalSelector:(SEL)originalSel
                    swizzledSelector:(SEL)swizzledSel;

@end

NS_ASSUME_NONNULL_END
